// --------------------------------------------------------------------------------------------------------------------
// <copyright file="RenameDialogFactory.cs" company="GT">
//   Gunther Taborga
// </copyright>
// <summary>
//   Defines the RenameDialogFactory type.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

// TODO refactored=true
namespace BatchID3.Editor.Dialogs
{
    using System.Collections.Generic;

    using BatchID3.Enumerations;
    using BatchID3.Mp3;

    public class RenameDialogFactory : IRenameDialogFactory
    {
        private readonly IMp3FileSystemManager mp3FileSystemManager;

        private readonly IMp3PreviewFactory mp3PreviewFactory;

        public RenameDialogFactory(IMp3FileSystemManager mp3FileSystemManager, IMp3PreviewFactory mp3PreviewFactory)
        {
            this.mp3FileSystemManager = mp3FileSystemManager;
            this.mp3PreviewFactory = mp3PreviewFactory;
        }

        public IRenameDialog GetRenameDialog(
            IEnumerable<IMp3Entity> mp3Entities, 
            IEnumerable<TagToken> tagTokens, 
            IEnumerable<TagToken> preSelectedTagTokens, 
            IEnumerable<char> delimiters)
        {
            return new RenameDialog(this.mp3FileSystemManager, this.mp3PreviewFactory, mp3Entities, tagTokens, preSelectedTagTokens, delimiters);
        }
    }
}